Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO


■98MULTi CanBeコントロール
対象	PC-9821Cf・Cx・Cb・Cx2・Cb2・Cx3・Cb3・Na12・Na9・Na7・Nb7・Nx

解説  o 98MULTi CanBeでは、各種マルチメディア機能を制御するために特別なI/O
	ポートがある。主にこのI/Oではリモコンの制御、サウンド機能の制御、
	電源切断などを行う。またマルチメディア指向の98NOTEであるPC-9821Na7・Nx
	も、この部分は98MULTi CanBeをベースとしており、同様のI/Oが存在する。
      o 通常このI/Oアドレスは、I/O 0C24h,0C2Bh,0C2Dhにより再配置することが
	できる。通常、I/O 0F4Ah,0F4Bhに設定されている。
      o リモコンからの受信があると、CPUに対して割り込みが発生する。CPUでは、
	この割り込みをフックすることでリモコンの状態を監視できる。
      o 電源切断の処理を行う。PC-9821Cf・Cx・Cb・Cx2・Cb2・Cx3・Cb3では、
	INT 1Fh - Function 98hによる電源切断がサポートされていないので、ソ
	電源を切断するためには、直接ハードウェアを操作する必要がある。
関連	I/O 0C24h,0C2Bh,0C2Dh


I/O	0F4Ah
名前	リモコン制御[INDEX]
機能
	bit 7〜0: レジスタ指定
		* I/O 0F4Bhで読み書きするレジスタ番号を指定する
関連	I/O 0F4Bh
	I/O 0C24h,0C2Bh,0C2Dh


I/O	0F4Bh
名前	リモコン制御[DATA]
機能
	bit 7〜0: データ指定
		* I/O 0F4Ahで指定されたレジスタを読み書きする。
	--------+--------------------------------------------------------------
	INDEX	|用途
	--------+--------------------------------------------------------------
	00h	|不明	
	--------+--------------------------------------------------------------
	01h	|サウンド割り込みアドレス
		|[READ/WRITE]
		|	00h= INT5
		|	02h= INT41
		|	03h= INT0
		|	08h= INT1
		|	* WindowsSoundSystemで使用する割り込みアドレスが
		|	  設定される
		|関連	I/O 0F40h bit 5〜3
	--------+--------------------------------------------------------------
	02h	|不明	
		|	
	--------+--------------------------------------------------------------
	03h	|リモコンリセット
		|[READ/WRITE]
		|bit 7〜3: 不明
		|bit 2: マイクスルー
		|	1= マイクスルーする
		|	0= マイクスルーしない
		|bit 1: 不明
		|bit 0: コントローラリセット
		|	1= リセットする
		|	0= リセットしない
	--------+--------------------------------------------------------------
	04h	|ミュートコントロール
		|[READ/WRITE]
		|bit 7〜1: 不明
		|bit 0: ミュート
		|	1= ミュートする
		|	0= ミュートしない
		|	* サウンド出力のミュートをコントロールする
	--------+--------------------------------------------------------------
	10h	|リモコンデータステータス
		|[READ]
		|bit 7〜2: 未使用
		|bit 1: ビジーフラグ
		|	1= Reday
		|	0= Busy
		|bit 0: ステータス
		|	1= 受信データあり
		|	0= 受信データなし
		|	* リモコンからデータの受信があるとセットされ、CPUに
		|	  対して割り込みを発生する。
		|	  I/O 0F4Ah,0F4Bh - 11hから受信コードを2バイトずつ
		|	  引き取ることでクリアされる。
	--------+--------------------------------------------------------------
	11h	|リモコン受信コード
		|[READ]
		|	00000000b(00h)= [^](Ch UP)を押した
		|	11111111b(FFh)= [^](Ch UP)を押したあと2回目に読まれる
		|	00000001b(01h)= [v](Ch DOWN)を押した
		|	11111111b(FEh)= [v](Ch DOWN)を押したあと2回目に読まれる
		|	00000010b(02h)= [^](VOL UP)を押した
		|	11111101b(FDh)= [^](VOL UP)を押したあと2回目に読まれる
		|	00000011b(03h)= [V](VOL DOWN)を押した
		|	11111100b(FCh)= [V](VOL DOWN)を押したあとに読まれる
		|	00000100b(04h)= [^](EJECT)を押した
		|	11111011b(FBh)= [^](EJECT)を押したあと2回目に読まれる
		|	00000101b(05h)= [》||]    を押した
		|	11111010b(FAh)= [》||]    を押したあと2回目に読まれる
		|	00001001b(09h)= [MUTE]    を押した
		|	11110110b(F6h)= [MUTE]    を押したあと2回目に読まれる
		|	00001010b(0Ah)= [VIDEO]   を押した
		|	11110101b(F5h)= [VIDEO]   を押したあと2回目に読まれる
		|	00001100b(0Ch)= [>>]      を押した
		|	11110011b(F3h)= [>>]      を押したあと2回目に読まれる
		|	00001101b(0Dh)= [<<]      を押した
		|	11110010b(F2h)= [<<]      を押したあと2回目に読まれる
		|	00011101b(1Dh)= [MAIN/SUB]を押した
		|	11100010b(E2h)= [MAIN/SUB]を押したあと2回目に読まれる
		|	01000000b(40h)= [↑]      を押した
		|	10111111b(BFh)= [↑]      を押したあと2回目に読まれる
		|	01000001b(41h)= [↓]      を押した
		|	10111110b(BEh)= [↓]      を押したあと2回目に読まれる
		|	01000010b(42h)= [←]      を押した
		|	10111101b(BDh)= [←]      を押したあと2回目に読まれる
		|	01000011b(43h)= [→]      を押した
		|	10111100b(BCh)= [→]      を押したあと2回目に読まれる
		|	01001101b(4Dh)= [SIZE]    を押した
		|	10110010b(B2h)= [SIZE]    を押したあと2回目に読まれる
		|	01001110b(4Eh)= [ESC]     を押した
		|	10110001b(B1h)= [ESC]     を押したあと2回目に読まれる
		|	01001111b(4Fh)= [CR]      を押した
		|	10110000b(B0h)= [CR]      を押したあと2回目に読まれる
		|	01010011b(53h)= [TV]      を押した
		|	10101100b(ACh)= [TV]      を押したあと2回目に読まれる
		|	01011011b(5Dh)= [FREEZE]  を押した
		|	10100010b(A2h)= [FREEZE]  を押したあと2回目に読まれる
		|	01011110b(5Eh)= [CAPTURE] を押した
		|	10100001b(A1h)= [CAPTURE] を押したあと2回目に読まれる
		|	* リモコンからの受信コードは、各ボタンに割り当てられた
		|	  コード番号の形で得られる。
		|	* 各コードは、2バイトずつ連続して読み込む。2バイト目
		|	  では、1バイト目のビット反転した値が読み出される。
	--------+--------------------------------------------------------------
	12h	|不明
		|
	--------+--------------------------------------------------------------
	13h	|電源コントロール
		|[WRITE]
		|	80h,06h,00h,00h,80h,07h,00h,01h,80h,01h,00h,00h
		|	* このバイト列を書き込むと電源を切断する。
		|
		|	80h,05h,00h,00h
		|	* このバイト列を電源起動時に書き込んでいる。
		|
		|
		|
		|
	--------+--------------------------------------------------------------
	14h	|■[CANBE]
		|リモコンが使用する割り込み
		|[READ/WRITE]
		|	bit 7〜3: 不明
		|	bit 2: リモコン割り込み
		|		1= 使用しない
		|		0= 使用する
		|	bit 1,0: リモコン割り込みアドレス
		|		11b= INT41
		|		10b= INT1
		|		01b= INT2
		|		00b= INT0
		|* リモコンが使用する割り込みアドレスなどを設定する。
		+--------------------------------------------------------------
		|■[PC-9821Nx]
		|不明
	--------+--------------------------------------------------------------
	30h	|CanBe VOL1・2(YMF288出力)	L
	--------+--------------------------------------------------------------
	31h	|CanBe VOL1・2(YMF288出力)	R
	--------+--------------------------------------------------------------
	32h	|CanBe VOL3・4(LINE入力)		L
	--------+--------------------------------------------------------------
	33h	|CanBe VOL3・4(LINE入力)		R
	--------+--------------------------------------------------------------
	34h	|不明
	--------+--------------------------------------------------------------
	35h	|不明
	--------+--------------------------------------------------------------
関連	I/O 0F4Ah
	I/O 0C24h,0C2Bh,0C2Dh


-------------------------------------------------------------------------------

■テレビチューナボード
対象	PC-9821Cf・Cx・Cb
解説  o PC-9821Cf・Cx・Cbにはテレビ画像のキャプチャリング,オーバーレイ等を
	行うための専用テレビチューナボードが標準搭載されている。
関連	INT 0Eh		


I/O	0960h
名前	TVチューナ制御[DATA]
	Undocumented
機能
	[READ/WRITE]
	bit 15〜0: データ
		--------+------------------------------------------------------
		レジスタ|内容
		--------+------------------------------------------------------
		0000h	|フリーズ設定
			|bit 15〜1: 不明
			|bit 0: フリーズ
			|	1= フリーズする
			|	0= フリーズしない
		--------+------------------------------------------------------
		0001h	|不明
		--------+------------------------------------------------------
		0002h	|不明
		--------+------------------------------------------------------
		0003h	|キャプチャ範囲指定
			|bit 15〜0: スクリーンX座標
		--------+------------------------------------------------------
		0004h	|キャプチャ範囲指定
			|bit 15〜0: スクリーンY座標
		--------+------------------------------------------------------
		0005h	|キャプチャ範囲指定
			|bit 15〜0: スクリーンXサイズ
		--------+------------------------------------------------------
		0006h	|未使用
		0007h	|未使用
		--------+------------------------------------------------------
		0008h	|不明Xサイズ
		--------+------------------------------------------------------
		0009h	|不明Xサイズ
		--------+------------------------------------------------------
		000Ah	|不明Yサイズ
		--------+------------------------------------------------------
		000Bh	|不明Yサイズ
		--------+------------------------------------------------------
		000Ch	|未使用
		--------+------------------------------------------------------
		000Dh	|不明
		--------+------------------------------------------------------
		000Eh	|未使用
		000Fh	|未使用
		--------+------------------------------------------------------
		0010h	|不明
		--------+------------------------------------------------------
		0011h	|表示位置
			|bit 15〜10: 未使用
			|bit 9〜0: スクリーン表示位置(X座標)
		--------+------------------------------------------------------
		0012h	|表示位置
			|bit 15〜10: 未使用
			|bit 9〜0: スクリーン表示位置(Y座標)
		--------+------------------------------------------------------
		0013h	|キャプチャ開始位置(ドット番号)
		--------+------------------------------------------------------
		0014h	|キャプチャ開始位置(ライン番号)
		--------+------------------------------------------------------
		0015h	|表示位置
			|bit 15〜10: 未使用
			|bit 9〜0: スクリーン表示位置(X座標)
		--------+------------------------------------------------------
		0016h	|表示位置
			|bit 15〜10: 未使用
			|bit 9〜0: スクリーン表示位置(Y座標)
		--------+------------------------------------------------------
		0017h	|右側マスク開始位置
			|bit 15〜10: 未使用
			|bit 9〜0: マスク開始位置(X座標)
		--------+------------------------------------------------------
		0018h	|下側マスク開始位置
			|bit 15〜10: 未使用
			|bit 9〜0: マスク開始位置(Y座標)
		--------+------------------------------------------------------
		0019h	|
		  :     |未使用
		001Fh	|
		--------+------------------------------------------------------
		0020h	|不明
		--------+------------------------------------------------------
		0021h	|音声制御
			|bit 15〜4: 未使用
			|bit 3,2: 音声ミュート
			|	11b= ミュートする
			|	10b= ミュートする
			|	01b= ミュートしない
			|	00b= ミュートする
			|bit 1,0: 不明
		--------+------------------------------------------------------
解説  o I/O 0962hで指定されたレジスタを読み書きする。
関連	I/O 0962h


I/O	0962h
名前	TVチューナ制御[INDEX]
	Undocumented
機能
	[READ/WRITE]
	bit 15〜0: レジスタ指定
解説  o I/O 0960hで読み書きするレジスタ番号を指定する。
      o このポートに対して0000hを書き込んだ直後に読み出しを行ったとき、
	正常に0000hが読み込めるかどうかで、ビデオキャプチャボードの存在を
	検出することが可能である。
関連	I/O 0960h


I/O	0964h
名前	キャプチャデータ
	Undocumented
機能
	[READ]
	bit 15〜0: データ
		* キャプチャデータの引き取り
解説  o キャプチャしたデータを引き取る。
関連	I/O 0962h,0960h


I/O	0966h
名前	不明
	Undocumented
機能
	[READ/WRITE]
	bit 7〜0: 不明
解説  o 詳細不明
関連	I/O 0967h


I/O	0967h
名前	不明
	Undocumented
機能
	[READ/WRITE]
	bit 7〜0: 不明
	
	
解説  o 詳細不明
関連	I/O 0966h